In the development of complex products or systems that involve development of software, hardware and firmware, each being developed by separate development engineering groups, the data related to the software, hardware and firmware often reside in different computer and/or software systems and environments that were not designed to support information exchange among the different systems. Because of the lack of integration of the data relating to the software, hardware and firmware being developed, hardware development configuration management, software development configuration management, firmware development configuration management and product requirements are separately generated and manually coordinated. This leads to program delays and additional costs because when inevitable changes occur in the hardware, software, firmware or requirements definition process, the impacts of the changes are often manually managed in separate environments. This disparate management of the development data results in situations where artifacts such as product structures, SysML(Systems Modeling Language) and UML (Unifies Modeling Language) models and code do not contain requirements and links among each other for product requirements and artifacts traceability, configuration management (CM) and lifetime support. Thus, there is a need for a software architecture that can integrate the data exchange among the various software, hardware and firmware development environments.